/*
 * @Description: 全局loading
 * @使用示例：
 * 开启： load.open(),
 * 自定义内容 load.open("提示信息")
 * 自定义属性：load.open({text:'加载内容',background:'背景色'})
 * 关闭： load.close()
 */

import { ElLoading } from 'element-plus'

class Loading {
  constructor() {
    this.loading = null
    this.loadingConfig = {
      lock: true,
      text: '数据处理中……',
      background: 'rgba(0, 0, 0, 0.4) !important'
    }
  }

  /** 生成loading service */
  open(config: any) {
    let con = this.loadingConfig
    if (typeof config === 'string') {
      con.text = config
    } else {
      con = Object.assign(this.loadingConfig, config)
    }

    this.loading = ElLoading.service(con)
  }

  /** 关闭loading */
  close() {
    if (this.loading) {
      this.loading.close()
    }
  }
}

export default new Loading()
